"""
Hlang is a Sample Language shell
Just a sample example for learning by Huterox
"""
import argparse

import hlang_basic
parser = argparse.ArgumentParser()
# 读取脚本
parser.add_argument("--f", action="store_true", help="读取脚本")
# 进入终端
parser.add_argument("--c", action="store_true", help="进入终端")
# 显示当前版本
parser.add_argument("--v", action="store_true", help="显示当前版本")
# 显示帮助
parser.add_argument("--h", action="store_true", help="显示当前版本")

# 解析命令行参数
args = parser.parse_args()
if __name__ == '__main__':

    if args.f:
        if args.f.endswith(".lang"):
            try:
                with open(args.f, "r") as file:
                    script = file.read()
                    result, error = hlang_basic.run('<标准脚本输入>', script)
                    if error:
                        print(error.as_string())
                    else:
                        print(result)

            except FileNotFoundError:
                print("文件不存在")
            except Exception as e:
                print(f"执行脚本时发生错误: {e}")
        else:
            print("无法执行，文件名不以 '.lang' 结尾")

    elif args.c:
        # 进入终端
        while True:

            input_text = input("Hlang交互终端->>>")
            result, error = hlang_basic.run('<标准输入>', input_text)

            if error:
                print(error.as_string())
            else:
                print(result)

    elif args.v:
        # 执行与 --version 相关的操作
        print("当前版本：1.1")

    elif args.h:
        # 执行与 --help 相关的操作
        print("帮助信息:")
        print("--f 文件名.lang  执行脚本")
        print("--c 进入交互终端")
        print("--v 查看版本")
        print("--h 查看帮助")

    else:
        # 进入终端
        while True:

            input_text = input("Hlang交互终端->>>")
            result, error = hlang_basic.run('<标准输入>', input_text)

            if error:
                print(error.as_string())
            else:
                print(result)